home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1988-03-22 | 5.9 KB | 252 lines |
- 0 COLOR 14,1,0
- 1 CLS
- 2 REM chr$(147) :print:print:print
- 3 PRINT TAB(31):PRINT "PROPOGATION PRO":PRINT TAB(38):PRINT"BY":PRINT TAB(29):PRINT"COMPOST DATA SYSTEMS":PRINT TAB(32):PRINT"COPYWRITE 1988"
- 4 PRINT:PRINT:PRINT:PRINT
- 5 PRINT TAB(9):PRINT"THIS PROGRAM WILL CALCULATE THE MAXIMUM USEABLE FREQUENCY FOR RADIO TRANSMISSION"
- 6 PRINT TAB(9):PRINT"FROM PITTSBURGH TO VARIOUS WORLD LOCATIONS AND TO SPECIFIC LOCATIONS OF KNOWN"
- 7 PRINT:PRINT TAB(28):PRINT"LATITUDE AND LONGITUDE.":PRINT
- 8 FOR I=1 TO 10000:NEXT I
- 9 CLS
- 110 DIM DM(12),M0$(12)
- 120 DATA 31,28,31,30,31,30,31,31,30,31,30,31
- 130 FOR I=1 TO 12: READ DM(I):NEXT I
- 140 DATA JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC
- 145 FOR I=1 TO 12:READ M0$(I):NEXT I
- 150 R0 = 3.1416/180
- 155 P1=2*3.1416
- 160 R1=180/3.1416
- 170 P0=3.1416/2
- 190 L1=40:W1= + 80
- 191 PRINT TAB(29);"RECEIVER LOCATION":PRINT:PRINT
- 192 PRINT TAB(31);"ETR 1 ENGLAND"
- 193 PRINT TAB(31);"ETR 2 ITALY"
- 194 PRINT TAB(31);"ETR 3 TURKEY"
- 195 PRINT TAB(31);"ETR 4 EGYPT"
- 196 PRINT TAB(31);"ETR 5 SO.AFRICA"
- 197 PRINT TAB(31);"ETR 6 NEW ZEALAND"
- 198 PRINT TAB(31);"ETR 7 AUSTRALIA"
- 199 PRINT TAB(31);"ETR 8 JAPAN"
- 200 PRINT TAB(31);"ETR 9 HAWAI"
- 201 PRINT TAB(31);"ETR 10 ALASKA"
- 202 PRINT TAB(31);"ETR 11 GREENLAND"
- 203 PRINT TAB(31);"ETR 12 BRAZIL"
- 204 PRINT TAB(31);"ETR 13 SPECIFIC COORDINATES":PRINT TAB(31);"LONGITUDE WEST-ETR PLUS VALUE"
- 205 PRINT:PRINT:PRINT TAB(24):INPUT"ETR RECEIVER LOCATION CODE=";Z
- 206 CLS
- 207 GOSUB 4999
- 269 PRINT
- 349 PRINT:PRINT
- 350 PRINT TAB(1):INPUT"ENTER DAY, MONTH(31,12)";D6,M
- 351 M0=M
- 370 IF 1<=M AND M< =12 THEN 400
- 380 PRINT "INVALID MONTH (MUST BE IN RANGE OF 1 TO 12)"
- 390 GOTO 350
- 400 IF 1<=D6 AND D6 <=DM(M) THEN 411
- 405 PRINT "INVALID DAY ENTRY(RANGE 1-31)"
- 406 GOTO 350
- 410 PRINT ;PRINT;" DATA:M0;D6:PRINT"
- 411 PRINT:PRINT
- 430 PRINT TAB(1):INPUT "SOLAR FLUX NUMBER=";S
- 431 CLS
- 440 IF S>0 THEN 480
- 460 PRINT "INVALID SUNSPOT NO(POS NUMBER)"
- 470 GOTO 430
- 480 GOSUB 4000
- 490 PRINT : PRINT
- 500 PRINT " DATE:";M0$(M);" ";D6;SPC(10);"SUNSPOT NO. =";S9;
- 502 PRINT SPC(5);"SOLAR FLUX NO. = ";S:PRINT
- 510 PRINT TAB(22);"TRANS.LOC.-LAT=";L1;SPC(4);"LONG =";W1
- 520 PRINT TAB(22);"RECVR.LOC.-LAT=";L2;SPC(4);"LONG =";W2
- 521 PRINT
- 553 PRINT TAB(25);CT$
- 554 PRINT
- 560 PRINT ; TAB( 10);" HOUR MUF(MHZ)";
- 561 PRINT ; TAB( 40);" HOUR MUF(MHZ)"
- 570 PRINT
- 600 L1=L1*R0
- 610 W1=W1*R0
- 620 L2=L2*R0
- 630 W2=W2*R0
- 640 FOR Z5=0 TO 11
- 641 T5=Z5:S5=T5
- 650 GOSUB 1000
- 651 J9=INT(J9*100)/100:Z9=J9
- 653 T5=Z5+12:S6=T5
- 654 GOSUB 1000
- 655 J9=INT(J9*100)/100
- 660 PRINT TAB(14);S5;TAB(23);USING"###.#";Z9;
- 661 PRINT TAB(43);S6;TAB(53);USING"###.#";J9
- 680 NEXT Z5
- 690 PRINT
- 700 INPUT "DO YOU WANT ANOTHER RUN? Y/N";T$
- 701 IF T$="Y" THEN CLS : GOTO 190
- 702 IF T$="N" THEN CLS : PRINT "FINIS"
- 703 IF T$="y" THEN CLS : GOTO 190
- 704 IF T$="n" THEN CLS : PRINT "FINIS"
- 705 END
- 720 GOTO 190
- 1000 REM -MINMUF 3.5
- 1001 REM
- 1010 K7=SIN (L1)*SIN(L2)+COS(L1)*COS(L2)*COS (W2-W1)
- 1020 IF K7>0.9999 OR K7<-0.999 THEN G1=0:GOTO 1080
- 1065 REM
- 1070 G1=(-ATN(K7/SQR( -K7*K7+1))+3.1416/2)
- 1080 K6=1.59*G1
- 1090 IF K6 > = 1 THEN 1110
- 1100 K6=1
- 1110 K5 = 1 / K6
- 1120 J9=100
- 1130 FOR K1= 1 / (2 * K6) TO 1 - 1 / (2 * K6) STEP 0.9999 - 1 / K6
- 1140 IF K5=1 THEN 1160
- 1150 K5=0.5
- 1160 P=SIN(L2)
- 1170 O= COS (L2)
- 1180 A=(SIN(L1)-P*COS(G1))/(O* SIN(G1))
- 1190 B=G1*K1
- 1200 C=P* COS(B) +O* SIN(B)*A
- 1210 D=(COS(B) -C*P)/(O*SQR (1-C^2))
- 1220 IF D > -1 THEN 1250
- 1230 D= -0.9999
- 1240 GOTO 1270
- 1250 IF D < =1 THEN 1270
- 1260 D= 0.9999
- 1270 D= ( - ATN (D/ SQR ( -D * D+1)) + 3.1416 /2)
- 1280 W0=W2 + SGN ( SIN (W1 -W2)) * D
- 1290 IF W0 = > 0 THEN 1310
- 1300 W0=W0 + P1
- 1310 IF W0 < P1 THEN 1330
- 1320 W0=W0-P1
- 1330 IF C= > -1 THEN 1360
- 1340 C= -0.999
- 1350 GOTO 1380
- 1360 IF C < =1 THEN 1380
- 1370 C= 0.999
- 1380 L0=P0 - ( - ATN (C / SQR( -C*C+1)) + 3.1416/2)
- 1390 Y1=0.0172 * (10 + (M0 - 1)* 30.4 + D6)
- 1400 Y2= 0.409 * COS (Y1)
- 1410 K8= 3.82 * W0 + 12 +0.13*(SIN(Y1) + 1.2 * SIN (2 *Y1))
- 1420 K8=K8-12*(1+ SGN(K8-24))*SGN(ABS(K8-24))
- 1430 IF COS (L0+Y2) >-0.26 THEN 1520
- 1440 K9=0
- 1450 G0=0
- 1460 M9=2.5*G1*K5
- 1470 IF M9<=P0 THEN 1490
- 1480 M9=P0
- 1490 M9=SIN(M9)
- 1500 M9=1+2.5*G1*SQR(M9)
- 1510 GOTO 1770
- 1520 K9=(-0.26+SIN(Y2)*SIN (L0)) / (COS (Y2)*COS(L0)+0.000999999)
- 1530 K9=12-ATN(K9/SQR(ABS(1-K9*K9)))*7.63944
- 1540 T=K8-K9/2+12*(1-SGN(K8-K9/2))*SGN(ABS(K8-K9/2))
- 1550 T4=K8+K9/2-12*(1+SGN(K8+K9/2-24))*SGN(ABS(K8+K9/2-24))
- 1560 C0=ABS(COS(L0+Y2))
- 1570 T9=9.7*C0^9.6
- 1580 IF T9>0.1 THEN 1600
- 1590 T9=0.1
- 1600 M9=2.5*G1*K5
- 1610 IF M9 < =P0 THEN 1630
- 1620 M9=P0
- 1630 M9=SIN(M9)
- 1640 M9=1+2.5*M9*SQR(M9)
- 1650 IF T4 < T THEN 1680
- 1660 IF (T5-T)*(T4-T5)>0 THEN 1690
- 1670 GOTO 1820
- 1680 IF (T5-T4)*(T-T5)>0 THEN 1820
- 1690 T6=T5+12*(1+SGN(T-T5))*SGN(ABS(T-T5))
- 1700 G9=3.1416 * (T6-T)/K9
- 1710 G8=3.1416 * T9/K9
- 1720 U=(T-T6)/T9
- 1730 G0=C0*(SIN(G9)+G8*(EXP(U)-COS(G9)))/(1+G8*G8)
- 1740 G7=C0*(G8*(EXP(-K9/T9)+1))*EXP((K9-24)/2)/(1+G8*G8)
- 1750 IF G0=>G7 THEN 1770
- 1760 G0=G7
- 1770 G2=(1+S9/250)*M9*SQR(6+58*SQR(G0))
- 1780 G2=G2*(1-0.1*EXP((K9-24)/3))
- 1790 G2=G2*(1+(1-SGN(L1)*SGN(L2))*0.1)
- 1800 G2=G2*(1-0.1*(1+SGN(ABS(SIN(L0))-COS(L0))))
- 1810 GOTO 1880
- 1820 T6=T5+12*(1+SGN(T4-T5))*SGN(ABS(T4-T5))
- 1830 G8=3.1416*T9/K9
- 1840 U=(T4-T6)/2
- 1850 U1= -K9/T9
- 1860 G0=C0*(G8*(EXP(U1)+1))*EXP(U)/(1+G8*G8)
- 1870 GOTO 1770
- 1880 IF G2 > J9 THEN 1900
- 1890 J9=G2
- 1900 NEXT K1
- 1910 RETURN
- 2990 END
- 3000 REM SUB FOR ACOS
- 3030 DEF FN C(X)=(-ATN(X/SQR(-X*X+1))+/2):RETURN
- 3990 S1=155
- 4000 REM SUB SOLAR FLUX TO SUNSPOT NO
- 4010 S9=10.7626-(2.59987*S)
- 4020 S9=S9+(0.0544131*S^2)
- 4030 S9=S9-(0.000221346*S^3)
- 4040 S9=S9-(1.07083E-06*S^4)
- 4050 S9=S9+(7.40653E-09*S^5)
- 4060 S9=S9+(2.83302E-11*S^6)
- 4070 S9=S9-(2.7019E-13*S^7)
- 4080 S9=S9+(4.8E-16*S^8)
- 4090 RETURN
- 4999 REM LIST OF SPECIFIC RECVR LOC
- 5000 IF Z< >1 THEN 5020
- 5010 L2=50:W2=0
- 5011 CT$="CALCULATING MUF TO ENGLAND"
- 5020 IF Z< >2 THEN 5060
- 5040 L2=40
- 5041 CT$="CALCULATING MUF TO ITALY"
- 5050 W2=-15
- 5060 IF Z < > 3 THEN 5090
- 5070 L2=40
- 5071 CT$="CALCULATING MUF TO TURKEY"
- 5080 W2=-16
- 5081 CT$="CALCULATING MUF TO TURKEY"
- 5090 IF Z < > 4 THEN 6020
- 6000 L2=30
- 6001 CT$="CALCULATING MUF TO EGYPT"
- 6010 W2=-16
- 6011 CT$="CALCULATING MUF TO EGYPT"
- 6020 IF Z < > 5 THEN 6060
- 6030 L2=-38
- 6040 W2=-20
- 6041 CT$="CALCULATING MUF TO SO.AFRICA"
- 6060 IF Z < > 6 THEN 6090
- 6070 L2=-40
- 6080 W2=180
- 6081 CT$="CALCULATING MUF TO NEW ZEALAND"
- 6090 IF Z < >7 THEN 7020
- 6091 CT$="CALCULATING MUF TO AUSTRALIA"
- 7000 L2=-30
- 7010 W2=-140
- 7020 IF Z < > 8 THEN 7050
- 7021 CT$="CALCULATING MUF TO JAPAN"
- 7030 L2=38
- 7040 W2=-140
- 7050 IF Z < > 9 THEN 7080
- 7051 CT$="CALCULATING MUF TO HAWAI"
- 7060 L2=20
- 7070 W2=160
- 7080 IF Z < > 10 THEN 8010
- 7081 CT$="CALCULATING MUF TO ALASKA"
- 7090 L2=70
- 8000 W2=160
- 8010 IF Z < > = 11 THEN 8040
- 8011 CT$="CALCULATING MUF TO GREENLAND"
- 8020 L2=70
- 8030 W2=40
- 8040 IF Z < >12 THEN 8070
- 8041 CT$="CALCULATING MUF TO BRAZIL"
- 8050 L2=-20
- 8060 W2=+50
- 8070 IF Z < > 13 THEN 9000
- 8080 PRINT "ENTER LAT...LONG.(PLUS VALUE LONGITUDE WEST )"
- 8082 PRINT
- 8083 INPUT "LATITUDE ?=";L2
- 8084 INPUT "LONGITUDE?=";W2
- 9000 IF Z > =1 THEN 9001
- 9001 IF Z< =13 THEN 9030
- 9010 PRINT "INVALID ENTRY": STOP
- 9030 RETURN
-